package com.smart.community.region.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.smart.community.region.entity.Owner;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业主Mapper接口
 * 
 * @author Wu.Liang
 * @since 2025-08-20
 * @version 1.0.0
 */
@Mapper
public interface OwnerMapper extends BaseMapper<Owner> {
    
    /**
     * 根据用户ID查询业主
     * 
     * @param userId 用户ID
     * @return 业主信息
     */
    Owner selectByUserId(@Param("userId") Long userId);
    
    /**
     * 根据身份证号查询业主
     * 
     * @param idCard 身份证号
     * @return 业主信息
     */
    Owner selectByIdCard(@Param("idCard") String idCard);
    
    /**
     * 根据手机号查询业主
     * 
     * @param phone 手机号
     * @return 业主信息
     */
    Owner selectByPhone(@Param("phone") String phone);
    
    /**
     * 根据业主姓名和手机号查询业主
     * 
     * @param ownerName 业主姓名
     * @param phone 手机号
     * @return 业主信息
     */
    Owner selectByNameAndPhone(@Param("ownerName") String ownerName, @Param("phone") String phone);
    
    /**
     * 根据房户ID查询关联的业主列表
     * 
     * @param householdId 房户ID
     * @return 业主列表
     */
    List<Owner> selectByHouseholdId(@Param("householdId") Long householdId);
    
    /**
     * 根据社区ID查询业主列表
     * 
     * @param communityId 社区ID
     * @return 业主列表
     */
    List<Owner> selectByCommunityId(@Param("communityId") Long communityId);
    
    /**
     * 根据楼栋ID查询业主列表
     * 
     * @param buildingId 楼栋ID
     * @return 业主列表
     */
    List<Owner> selectByBuildingId(@Param("buildingId") Long buildingId);
    
    /**
     * 根据单元ID查询业主列表
     * 
     * @param unitId 单元ID
     * @return 业主列表
     */
    List<Owner> selectByUnitId(@Param("unitId") Long unitId);
}
